package com.ruoyi.report_jl.domain.vo;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.utils.BigDecimalUtil;
import com.ruoyi.report_jl.domain.ReportJlCjlhnlzpzjlbBaDetail;
import com.ruoyi.report_tg.domain.vo.ExcelGeneralVo;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;


/**
 * 粗集料含泥量、泥块针片状颗粒记录视图对象 report_jl_cjlhnlzpzjlb_bs_info
 *
 * @author tll
 * @date 2024-05-23
 */
@Data
@ExcelIgnoreUnannotated
public class ReportJlCjlhnlzpzjlbBsInfoVo extends ExcelGeneralVo {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @ExcelProperty(value = "id")
    private Long excelId;

    /**
     * 共几页
     */
    @ExcelProperty(value = "共几页")
    private Long totalPage;

    /**
     * 第几页
     */
    @ExcelProperty(value = "第几页")
    private Long page;

    /**
     * 记录编号
     */
    @ExcelProperty(value = "记录编号")
    private String jilbh;

    /**
     * 检测单位名称
     */
    @ExcelProperty(value = "检测单位名称")
    private String jiancdwmc;

    /**
     * 工程部位/用途
     */
    @ExcelProperty(value = "工程部位/用途")
    private String gongcbwyt;

    /**
     * 样品名称
     */
    @ExcelProperty(value = "样品名称")
    private String yangpmc;

    /**
     * 样品编号
     */
    @ExcelProperty(value = "样品编号")
    private String yangpbh;

    /**
     * 样品数量
     */
    @ExcelProperty(value = "样品数量")
    private String yangpsl;

    /**
     * 样品状态
     */
    @ExcelProperty(value = "样品状态")
    private String yangpzt;

    /**
     * 样品时间
     */
    @ExcelProperty(value = "样品时间")
    private String yangpsj;

    /**
     * 试验检测日期
     */
    @ExcelProperty(value = "试验检测日期")
    private String shiyjcrq;

    /**
     * 试验条件温度
     */
    @ExcelProperty(value = "试验条件温度")
    private String shiytjwd;

    /**
     * 试验条件湿度
     */
    @ExcelProperty(value = "试验条件湿度")
    private String shiytjsd;

    /**
     * 检测依据
     */
    @ExcelProperty(value = "检测依据")
    private String jiancyj;

    /**
     * 判定依据
     */
    @ExcelProperty(value = "判定依据")
    private String pandyj;

    /**
     * 主要仪器设备名称及编号
     */
    @ExcelProperty(value = "主要仪器设备名称及编号")
    private String zhuyyqsbmcjbh;

    /**
     * 附加声明
     */
    @ExcelProperty(value = "附加声明")
    private String fujsm;

    /**
     * 报表名称
     */
    @ExcelProperty(value = "报表名称")
    private String baobmc;

    /**
     * 报表编号
     */
    @ExcelProperty(value = "报表编号")
    private String baobbh;

    /**
     * 工程名称
     */
    @ExcelProperty(value = "工程名称")
    private String gongcmc;

    /**
     * 检测人
     */
    @ExcelProperty(value = "检测人")
    private String jiancr;

    /**
     * 记录人
     */
    @ExcelProperty(value = "记录人")
    private String jilr;

    /**
     * 复核人
     */
    @ExcelProperty(value = "复核人")
    private String fuhr;

    /**
     * 日期
     */
    @ExcelProperty(value = "日期")
    private Date riq;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;

    /**
     * 含泥量试验次数1
     */
    @ExcelProperty(value = "含泥量试验次数1")
    private String hannlSycsItem1;

    /**
     * 含泥量试验前烘干试样质量m0（g）行1
     */
    @ExcelProperty(value = "含泥量试验前烘干试样质量m0", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "g=")
    private BigDecimal hannlsyqhgsyzlItem1;

    /**
     * 含泥量试验后烘干试样质量m1（g）行1
     */
    @ExcelProperty(value = "含泥量试验后烘干试样质量m1", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "g=")
    private BigDecimal hannlsyhhgsyzlItem1;

    /**
     * 含泥量或小于0.075mm颗粒含量测值Qn(%)行1
     */
    @ExcelProperty(value = "含泥量或小于0.075mm颗粒含量测值Qn(%)行1")
    private BigDecimal hannlhxy075klczItem1;

    /**
     * 含泥量试验次数2
     */
    @ExcelProperty(value = "含泥量试验次数2")
    private String hannlSycsItem2;

    /**
     * 含泥量试验前烘干试样质量m0（g）行2
     */
    @ExcelProperty(value = "含泥量试验前烘干试样质量m0", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "g=")
    private BigDecimal hannlsyqhgsyzlItem2;

    /**
     * 含泥量试验后烘干试样质量m1（g）行2
     */
    @ExcelProperty(value = "含泥量试验后烘干试样质量m1", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "g=")
    private BigDecimal hannlsyhhgsyzlItem2;

    /**
     * 含泥量或小于0.075mm颗粒含量测值Qn(%)行2
     */
    @ExcelProperty(value = "含泥量或小于0.075mm颗粒含量测值Qn(%)行2")
    private BigDecimal hannlhxy075klczItem2;

    /**
     * 含泥量或小于0.075mm颗粒含量测定值Qn(%)-平均值
     */
    @ExcelProperty(value = "含泥量或小于0.075mm颗粒含量测定值Qn(%)-平均值")
    private BigDecimal hannlhxy075klczPjz;

    /**
     * 泥块含量试验次数1
     */
    @ExcelProperty(value = "泥块含量试验次数1")
    private String nikhlSycsItem1;

    /**
     * 泥块含量4.75mm筛上试样质量m2（g）行1
     */
    @ExcelProperty(value = "泥块含量4.75mm筛上试样质量m2", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "g=")
    private BigDecimal nikhl475sssyzlItem1;

    /**
     * 泥块含量试验后烘干试样质量m3（g）行1
     */
    @ExcelProperty(value = "泥块含量试验后烘干试样质量m3", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "g=")
    private BigDecimal nikhlsyhhgsyzlItem1;

    /**
     * 泥块含量测值Qk(%)行1
     */
    @ExcelProperty(value = "泥块含量测值Qk(%)行1")
    private BigDecimal nikhlczItem1;

    /**
     * 泥块含量试验次数2
     */
    @ExcelProperty(value = "泥块含量试验次数2")
    private String nikhlSycsItem2;

    /**
     * 泥块含量4.75mm筛上试样质量m2（g）行2
     */
    @ExcelProperty(value = "泥块含量4.75mm筛上试样质量m2", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "g=")
    private BigDecimal nikhl475sssyzlItem2;

    /**
     * 泥块含量试验后烘干试样质量m3（g）行2
     */
    @ExcelProperty(value = "泥块含量试验后烘干试样质量m3", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "g=")
    private BigDecimal nikhlsyhhgsyzlItem2;

    /**
     * 泥块含量测值Qk(%)行2
     */
    @ExcelProperty(value = "泥块含量测值Qk(%)行2")
    private BigDecimal nikhlczItem2;

    /**
     * 泥块含量测定值Qk(%)-平均值
     */
    @ExcelProperty(value = "泥块含量测定值Qk(%)-平均值")
    private BigDecimal nikhlczPjz;

    /**
     * 针片状颗粒含量试验（游标卡尺法）试验次数1
     */
    @ExcelProperty(value = "针片状颗粒含量试验", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "游=标卡尺法")
    private String zhenpzSycsItem1;

    /**
     * 非针片状颗粒总质量（g）行1
     */
    @ExcelProperty(value = "非针片状颗粒总质量", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "g=")
    private BigDecimal feizpzklzlItem1;

    /**
     * 针片状颗粒总质量（g）行1
     */
    @ExcelProperty(value = "针片状颗粒总质量", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "g=")
    private BigDecimal zhenpzklzzlItem1;

    /**
     * 针片状含量（%）行1
     */
    @ExcelProperty(value = "针片状含量", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "%=")
    private BigDecimal zhenpzhlItem1;

    /**
     * 针片状颗粒含量试验（游标卡尺法）试验次数2
     */
    @ExcelProperty(value = "针片状颗粒含量试验", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "游=标卡尺法")
    private String zhenpzSycsItem2;

    /**
     * 非针片状颗粒总质量（g）行2
     */
    @ExcelProperty(value = "非针片状颗粒总质量", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "g=")
    private BigDecimal feizpzklzlItem2;

    /**
     * 针片状颗粒总质量（g）行2
     */
    @ExcelProperty(value = "针片状颗粒总质量", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "g=")
    private BigDecimal zhenpzklzzlItem2;

    /**
     * 针片状含量（%）行2
     */
    @ExcelProperty(value = "针片状含量", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "%=")
    private BigDecimal zhenpzhlItem2;

    /**
     * 针片状颗粒含量试验（游标卡尺法）平均值（%）
     */
    @ExcelProperty(value = "针片状颗粒含量试验", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "游=标卡尺法")
    private BigDecimal zhenpzsyPjz;

    /**
     * 设备ids
     */
    @ExcelProperty(value = "设备ids")
    private String shebIds;

    @ExcelProperty(value = "子表")
    private List<ReportJlCjlhnlzpzjlbBaDetailVo> detailList;

    @ExcelProperty(value = "报表编号集")
    private List<String> baobbhList;

    public void setHannlsyqhgsyzlItem1(BigDecimal hannlsyqhgsyzlItem1) {
        this.hannlsyqhgsyzlItem1 = BigDecimalUtil.stpTrailZero(hannlsyqhgsyzlItem1);
    }

    public void setHannlsyhhgsyzlItem1(BigDecimal hannlsyhhgsyzlItem1) {
        this.hannlsyhhgsyzlItem1 = BigDecimalUtil.stpTrailZero(hannlsyhhgsyzlItem1);
    }

    public void setHannlhxy075klczItem1(BigDecimal hannlhxy075klczItem1) {
        this.hannlhxy075klczItem1 = BigDecimalUtil.stpTrailZero(hannlhxy075klczItem1);
    }

    public void setHannlsyqhgsyzlItem2(BigDecimal hannlsyqhgsyzlItem2) {
        this.hannlsyqhgsyzlItem2 = BigDecimalUtil.stpTrailZero(hannlsyqhgsyzlItem2);
    }

    public void setHannlsyhhgsyzlItem2(BigDecimal hannlsyhhgsyzlItem2) {
        this.hannlsyhhgsyzlItem2 = BigDecimalUtil.stpTrailZero(hannlsyhhgsyzlItem2);
    }

    public void setHannlhxy075klczItem2(BigDecimal hannlhxy075klczItem2) {
        this.hannlhxy075klczItem2 = BigDecimalUtil.stpTrailZero(hannlhxy075klczItem2);
    }

    public void setHannlhxy075klczPjz(BigDecimal hannlhxy075klczPjz) {
        this.hannlhxy075klczPjz = BigDecimalUtil.stpTrailZero(hannlhxy075klczPjz);
    }

    public void setNikhl475sssyzlItem1(BigDecimal nikhl475sssyzlItem1) {
        this.nikhl475sssyzlItem1 = BigDecimalUtil.stpTrailZero(nikhl475sssyzlItem1);
    }

    public void setNikhlsyhhgsyzlItem1(BigDecimal nikhlsyhhgsyzlItem1) {
        this.nikhlsyhhgsyzlItem1 = BigDecimalUtil.stpTrailZero(nikhlsyhhgsyzlItem1);
    }

    public void setNikhlczItem1(BigDecimal nikhlczItem1) {
        this.nikhlczItem1 = BigDecimalUtil.stpTrailZero(nikhlczItem1);
    }

    public void setNikhl475sssyzlItem2(BigDecimal nikhl475sssyzlItem2) {
        this.nikhl475sssyzlItem2 = BigDecimalUtil.stpTrailZero(nikhl475sssyzlItem2);
    }

    public void setNikhlsyhhgsyzlItem2(BigDecimal nikhlsyhhgsyzlItem2) {
        this.nikhlsyhhgsyzlItem2 = BigDecimalUtil.stpTrailZero(nikhlsyhhgsyzlItem2);
    }

    public void setNikhlczItem2(BigDecimal nikhlczItem2) {
        this.nikhlczItem2 = BigDecimalUtil.stpTrailZero(nikhlczItem2);
    }

    public void setNikhlczPjz(BigDecimal nikhlczPjz) {
        this.nikhlczPjz = BigDecimalUtil.stpTrailZero(nikhlczPjz);
    }

    public void setFeizpzklzlItem1(BigDecimal feizpzklzlItem1) {
        this.feizpzklzlItem1 = BigDecimalUtil.stpTrailZero(feizpzklzlItem1);
    }

    public void setZhenpzklzzlItem1(BigDecimal zhenpzklzzlItem1) {
        this.zhenpzklzzlItem1 = BigDecimalUtil.stpTrailZero(zhenpzklzzlItem1);
    }

    public void setZhenpzhlItem1(BigDecimal zhenpzhlItem1) {
        this.zhenpzhlItem1 = BigDecimalUtil.stpTrailZero(zhenpzhlItem1);
    }

    public void setFeizpzklzlItem2(BigDecimal feizpzklzlItem2) {
        this.feizpzklzlItem2 = BigDecimalUtil.stpTrailZero(feizpzklzlItem2);
    }

    public void setZhenpzklzzlItem2(BigDecimal zhenpzklzzlItem2) {
        this.zhenpzklzzlItem2 = BigDecimalUtil.stpTrailZero(zhenpzklzzlItem2);
    }

    public void setZhenpzhlItem2(BigDecimal zhenpzhlItem2) {
        this.zhenpzhlItem2 = BigDecimalUtil.stpTrailZero(zhenpzhlItem2);
    }

    public void setZhenpzsyPjz(BigDecimal zhenpzsyPjz) {
        this.zhenpzsyPjz = BigDecimalUtil.stpTrailZero(zhenpzsyPjz);
    }

    /**
     * 针片状颗粒含量试验（游标卡尺法）试验次数3
     */
    private String zhenpzSycsItem3;

    /**
     * 非针片状颗粒总质量（g）行3
     */
    private BigDecimal feizpzklzlItem3;

    /**
     * 针片状颗粒总质量（g）行3
     */
    private BigDecimal zhenpzklzzlItem3;

    /**
     * 针片状含量（%）行3
     */
    private BigDecimal zhenpzhlItem3;

    public void setFeizpzklzlItem3(BigDecimal feizpzklzlItem3) {
        this.feizpzklzlItem3 = BigDecimalUtil.stpTrailZero(feizpzklzlItem3);
    }

    public void setZhenpzklzzlItem3(BigDecimal zhenpzklzzlItem3) {
        this.zhenpzklzzlItem3 = BigDecimalUtil.stpTrailZero(zhenpzklzzlItem3);
    }

    public void setZhenpzhlItem3(BigDecimal zhenpzhlItem3) {
        this.zhenpzhlItem3 = BigDecimalUtil.stpTrailZero(zhenpzhlItem3);
    }
}
